package it.pizzastorm.domain.ordinazione;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import it.pizzastorm.domain.Cliente;
import it.pizzastorm.domain.RigaOrdine;

public class Ordinazione {
	private final Cliente cliente;
	private final List<RigaOrdine> righe = new ArrayList<RigaOrdine>();
	private final Integer id;

	public Ordinazione(Cliente cliente, Integer id) {
		super();
		this.cliente = cliente;
		this.id = id;
	}

	/**
	 * Restituisce il cliente che ha fatto l'ordine.
	 * 
	 * @return il cliente che ha fatto l'ordine.
	 */
	public Cliente getCliente() {
		return cliente;
	}

	/**
	 * Restituisce le righe di cui e' composto l'ordine;
	 * 
	 * @return
	 */
	public List<RigaOrdine> getRighe() {
		return righe;
	}

	/**
	 * Restituisce un intero che identifica univocamente l'ordine.
	 * 
	 * @return
	 */
	public Integer getId() {
		return id;
	}

	/**
	 * Restituisce l'importo totale dell'ordine che il cliente deve
	 * corrispondere.
	 * 
	 * @return
	 */
	public BigDecimal getTotaleImporto() {
		BigDecimal res = BigDecimal.ZERO;
		for (RigaOrdine riga : righe) {
			res = res.add(riga.getImporto());
		}
		return res;
	}

	Integer getEtaInMinuti();
}
